/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.cf.controller;

import com.cf.bean.TbTmp_Ejercicio;
import com.cf.dao.impl.TbEjercicioDaoImpl;
import com.cf.dao.impl.TbPalabraDao;
import com.cf.dao.impl.TbPlantillaDao;
import com.cf.dao.impl.TbSubCategoriaDao;
import com.cf.dao.impl.tmpEjercicioCFDaoImpl;
import com.cf.modelo.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.component.UIOutput;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.event.AjaxBehaviorEvent;
import org.primefaces.context.RequestContext;
import org.primefaces.event.TabChangeEvent;

/**
 *
 * @author Soltecn2
 */
@ManagedBean()
@SessionScoped
public class TmpEjercicioCFController implements Serializable {

    private List<TmpEjerciciocf> listtmpEjercicioCF;
    private TmpEjerciciocf tmpejerciciocf;
    private TmpEjerciciocf tmpejerciciocfB;

    public TmpEjerciciocf getTmpejerciciocfB() {
        return tmpejerciciocfB;
    }

    public void setTmpejerciciocfB(TmpEjerciciocf tmpejerciciocfB) {
        this.tmpejerciciocfB = tmpejerciciocfB;
    }
    public String parametroA;
    public String codicion;

    public String getCodicion() {
        return codicion;
    }

    public void setCodicion(String codicion) {
        this.codicion = codicion;
    }
    public String codEjercicio;
    private String enlace;
    private TbPalabra palabrabean;
    private TbPalabra selectPalabra;
    public List<TbPalabra> listpalabras;
    public List<TbPalabra> listpalabrasSilabas;
    public String mensaje;

    public String getMensaje() {
        return mensaje;
    }

    public void setMensaje(String mensaje) {
        this.mensaje = mensaje;
    }

    public TmpEjercicioCFController() {

        tmpejerciciocf = new TmpEjerciciocf();

        listtmpEjercicioCF = new ArrayList<TmpEjerciciocf>();
        tmpejerciciocfB = new TmpEjerciciocf();
        palabrabean = new TbPalabra();
        selectPalabra = new TbPalabra();
        listpalabras = new ArrayList<TbPalabra>();
        listPlantilla = new ArrayList<TbPlantilla>();
        listpalabrasSilabas = new ArrayList<TbPalabra>();
        ejer = new TbEjercicio();
        plant = new TbPlantilla();
    }
    public String palabrasSilabas;

    public String getPalabrasSilabas() {
        return palabrasSilabas;
    }

    public void setPalabrasSilabas(String palabrasSilabas) {
        this.palabrasSilabas = palabrasSilabas;
    }

    public List<TbPalabra> getListpalabrasSilabas() {
        listpalabrasSilabas = TbPalabraDao.listPalabras(silabas);
        return listpalabrasSilabas;
    }

    public void setListpalabrasSilabas(List<TbPalabra> listpalabrasSilabas) {
        this.listpalabrasSilabas = listpalabrasSilabas;
    }
    private static Integer cboClasificacion;
    private String filtro;
    private List<TbPlantilla> listPlantilla;

    public List<TbPlantilla> getListPlantilla() {
        listPlantilla = TbPlantillaDao.listTarea();
        return listPlantilla;
    }

    public void setListPlantilla(List<TbPlantilla> listPlantilla) {
        this.listPlantilla = listPlantilla;
    }

    public String getEnlace() {
        return enlace;
    }

    public void setEnlace(String enlace) {
        this.enlace = enlace;
    }

    public Integer getCboClasificacion() {
        return cboClasificacion;
    }

    public void setCboClasificacion(Integer cboClasificacion) {
        this.cboClasificacion = cboClasificacion;
    }
    public String queRimenCon;

    public String getQueRimenCon() {
        return queRimenCon;
    }

    public void setQueRimenCon(String queRimenCon) {
        this.queRimenCon = queRimenCon;
    }

    public String redire() {
        TbPalabraDao palabradao = new TbPalabraDao();
        if ("1".equals(codicion)) {
            palabradao.actualizar1(selectPalabra.getImagen(), selectPalabra.getImagen(), Integer.parseInt(parametroA), 100, enlace,codigo_tmp);
        } else {
            palabradao.actualizar2(selectPalabra.getImagen(), selectPalabra.getImagen(), Integer.parseInt(parametroA), 100,codigo_tmp);
        }

        return "wFrmEjercicioCFNuevo";
    }

    public String redire2() {

        try {

            TbPalabraDao palabradao = new TbPalabraDao();

            palabradao.actualizar1(selectPalabra.getImagen(), silabas + ".jpg", Integer.parseInt(parametroA), 1, enlace,codigo_tmp);
        } catch (Exception e) {
            System.out.println("ERROR REDIREC 3 : " + e.getMessage());
            return "";
        }

        return "wFrmEjercicioCFActualizar";
    }
    public String silabas;

    public String getSilabas() {
        return silabas;
    }

    public void setSilabas(String silabas) {
        this.silabas = silabas;
    }

    public TbPalabra getSelectPalabra() {
        return selectPalabra;
    }

    public void setSelectPalabra(TbPalabra selectPalabra) {
        this.selectPalabra = selectPalabra;
    }

    public TbPalabra getPalabrabean() {
        return palabrabean;
    }

    public void setPalabrabean(TbPalabra palabrabean) {
        this.palabrabean = palabrabean;
    }

    public String busquedaPalabras() {
        if ("".equals(queRimenCon)) {
            listpalabras = TbPalabraDao.listPalabras("0123456789");
            return null;
        }

        if (cboClasificacion == 0) {


            int palabraTotal = queRimenCon.length();
            filtro = queRimenCon.substring(palabraTotal - 3);
            listpalabras = TbPalabraDao.listPalabras(filtro);

        } else if (cboClasificacion == 1) {
            listpalabras = TbPalabraDao.listPalabras(queRimenCon);
        } else if (cboClasificacion == 2) {

            listpalabras = TbPalabraDao.listPalabras(queRimenCon);

        }

        return null;
    }

    public String busquedaPalabrasSilabas() {


        listpalabras = TbPalabraDao.listPalabras(silabas);
        return null;
    }

    public List<TbPalabra> getListpalabras() {
        if ("".equals(queRimenCon)) {
            listpalabras = TbPalabraDao.listPalabras("0123456789");
            return listpalabras;
        }
        if (cboClasificacion != null) {

            if (cboClasificacion == 0) {
                int palabraTotal = queRimenCon.length();
                filtro = queRimenCon.substring(palabraTotal - 3);
                listpalabras = TbPalabraDao.listPalabras(filtro);

            } else if (cboClasificacion == 1) {
                listpalabras = TbPalabraDao.listPalabras(queRimenCon);
            } else if (cboClasificacion == 2) {

                listpalabras = TbPalabraDao.listPalabras(queRimenCon);

            }
        }
        return listpalabras;
    }

    public void setListpalabras(List<TbPalabra> listpalabras) {
        this.listpalabras = listpalabras;
    }

    private static int codigo_tmp;
    
    public String showResult() {
        try {
            FacesContext fc = FacesContext.getCurrentInstance();
            Map<String, String> params =
                    fc.getExternalContext().getRequestParameterMap();
            codicion = (params.get("condicion"));
            codEjercicio = ejer.getCodigo().toString();
            enlace = tmpejerciciocf.getEnlace();
            parametroA = tmpejerciciocf.getCodA().toString();
            codigo_tmp=tmpejerciciocf.getCodTmpEjercicioCf();
        } catch (Exception e) {
            System.out.println("ERROR REDIREC 1: " + e.getMessage());
        }


        return "wFrmBuscarPalabras";
    }

    public String showResultB() {

        try {
            FacesContext fc = FacesContext.getCurrentInstance();
            Map<String, String> params =
                    fc.getExternalContext().getRequestParameterMap();
            codicion = (params.get("condicion"));
            codEjercicio = ejer.getCodigo().toString();
          
        } catch (Exception e) {
            System.out.println("ERROR REDIREC 2: " + e.getMessage());
        }

        return "wFrmBuscarPalabras";
    }

    public void onTabChange(TabChangeEvent event) {
    }

    public String getParametroA() {
        return parametroA;
    }

    public void setParametroA(String parametroA) {
        this.parametroA = parametroA;
    }

    public String getCodEjercicio() {
        return codEjercicio;
    }

    public void setCodEjercicio(String codEjercicio) {
        this.codEjercicio = codEjercicio;
    }
    private static Integer idEjercicio = 0;

    public Integer getIdEjercicio() {
        return idEjercicio;
    }

    public void setIdEjercicio(Integer idEjercicio) {
        this.idEjercicio = idEjercicio;
    }
    private int codigoPlnatillaDefecto = 0;

    public String cargaLista(AjaxBehaviorEvent event) {

        if (plant.getCodigo() == 1) {
            codigoPlnatillaDefecto = 100;
        } else {
            codigoPlnatillaDefecto = 0;
        }
        listtmpEjercicioCF = tmpEjercicioCFDaoImpl.listTmpEjercicio(codigoPlnatillaDefecto);
        return "";
    }

    public List<TmpEjerciciocf> getListtmpEjercicioCF() {
        if (plant.getCodigo() == null) {
            return listtmpEjercicioCF;
        }
        if (plant.getCodigo() == 1) {
            codigoPlnatillaDefecto = 100;
        } else {
            codigoPlnatillaDefecto = 0;
        }
        listtmpEjercicioCF = tmpEjercicioCFDaoImpl.listTmpEjercicio(codigoPlnatillaDefecto);
        return listtmpEjercicioCF;


    }

    public void setListtmpEjercicioCF(List<TmpEjerciciocf> listtmpEjercicioCF) {
        this.listtmpEjercicioCF = listtmpEjercicioCF;
    }

    public TmpEjerciciocf getTmpejerciciocf() {
        return tmpejerciciocf;
    }

    public void setTmpejerciciocf(TmpEjerciciocf tmpejerciciocf) {
        this.tmpejerciciocf = tmpejerciciocf;
    }

    public void grabar(TbEjerciciocfTbPalabra ejerciciocfTbPalabra) {

        List<TmpEjerciciocf> lis = tmpEjercicioCFDaoImpl.listTmpEjercicio(idEjercicio);

        for (int i = 0; i < lis.size(); i++) {
        }


    }

    public void setCategoriaEvt(AjaxBehaviorEvent evt) {
        cboClasificacion = 0;
    }
    private TbEjercicio ejer;
    private TbPlantilla plant;

    public String getFiltro() {
        return filtro;
    }

    public void setFiltro(String filtro) {
        this.filtro = filtro;
    }

    public TbEjercicio getEjer() {
        return ejer;
    }

    public void setEjer(TbEjercicio ejer) {
        this.ejer = ejer;
    }

    public TbPlantilla getPlant() {
        return plant;
    }

    public void setPlant(TbPlantilla plant) {
        this.plant = plant;
    }

    public TbTarea getTarea() {
        return tarea;
    }

    public void setTarea(TbTarea tarea) {
        this.tarea = tarea;
    }
    private TbTarea tarea;

    public void grabarDatos(ActionEvent actionEvent) {
        FacesMessage msg = null;
        try {

            TbEjercicioDaoImpl l = new TbEjercicioDaoImpl();
            if (l.grabarejercicio(ejer.getCodigo(), ejer.getCodigo(), 1, plant.getCodigo(), ejer.getDescripcion(), ejer.getEnunciado(), ejer.getDificultad())) {
                mensaje = "Se grabó correctamente";
                msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Mensaje: ", mensaje);
            } else {

                mensaje = "ERROR AL GRABAR";
                msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Mensaje: ", mensaje);
            }
            FacesContext.getCurrentInstance().addMessage(null, msg);

        } catch (Exception e) {

            msg = new FacesMessage(FacesMessage.SEVERITY_FATAL, "Mensaje: ", "ERROR AL GRABAR : " + e.getMessage());
            FacesContext.getCurrentInstance().addMessage(null, msg);

        }


    }
}
